import axios from "axios";
import type {
  AxiosInstance,
  AxiosResponse,
  InternalAxiosRequestConfig,
  AxiosRequestConfig,
} from "axios";

// 创建 axios 实例
const service: AxiosInstance = axios.create({
  baseURL: "http://123.57.214.94:9000/api",
  timeout: 600000,
  headers: {
    "Content-Type": "application/json",
  },
});

// 请求拦截器
service.interceptors.request.use(
  (config: InternalAxiosRequestConfig) => {
    // 可在此添加 token 等通用逻辑
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  (response: AxiosResponse) => {
    // 可根据后端返回结构统一处理
    return response.data;
  },
  error => {
    // 统一错误提示
    // 可根据实际需求自定义弹窗/提示
    return Promise.reject(error);
  }
);

// 通用 request 方法
const request = <T = any>(config: AxiosRequestConfig): Promise<T> => {
  return service(config);
};

export default request;
